﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once
#include "GnufBase.h"

namespace gnuf {
    enum class EItemType : std::uint8_t
    {
        //_____________________________________________________________________
        // Buttons...
        eButton, // Deprecated!
        eButtonEx,
        ePushButton,
        eCheckButton,
        eColorButton,
        eDropDownButton,
        eComboBoxButton,
        eCommonLineStyleButton, // the implementation inherits from the implementation of eComboBoxButton
        eCheckListButton,

        //_____________________________________________________________________
        // ...
        eCheck,
        eList,
        eTreeNode,
        eTreeBoard,
        eListWidget,

        //_____________________________________________________________________
        // NameValuePair...
        //
        eNameValuePair,
        eNameValuePairs,
        eNameValuePairBlock,

        //_____________________________________________________________________
        // FamilyType...
        eFamilyTypes,

        //_____________________________________________________________________
        // ...
        eCheckGroup,
        eWidgetAgent,
        eDropdownMenu, // Deprecated!
        eDropdownMenuEntry, // Deprecated!
        eContextMenu,
        eProgressItem,

        //_____________________________________________________________________
        // Workspace...
        eWorkspaceTab,
        eWorkspaceTabBar,

        //_____________________________________________________________________
        // ...
        eText,
        eTab,
        eTabBar,
        eBlock,
        eGrid,
        eToolbar,
        eSearch,
        eColorControl,
        eFamilyButtonEx,
        eDropdownBoard,
        eLineEditComboBox,
        //_____________________________________________________________________
        // ...
        eTable,
        eTableRow,
        eTableHeaderNode,
        eTableRowHeaderButton,

        eRadio,

        eSlider,
        eLabel,

        eTag,
        eTagPad, 

        eMatrixButton,

        eTestItem
    };

    enum class ETransferingContentMethod : std::uint8_t
    {
        eIgnore,                ///< Ignore
        eTransferSubContents,   ///< Transfer sub-contents
        eTransferThisContent    ///< Transfer this content
    };
}
